/**
 * 变量
 */

public class index {

  public static void main(String[] args) {
    
  }

}

/**
 * 变量三要素：类型+变量名+值
 */

/**
 * 基本数据类型：8种
 *    1.数值类：
 *        1.1 整数-byte(1个字节) short(2个字节) int(4个字节) long(8个字节)
 *        1.2 小数-float(4个字节) double(8个字节)
 *    2.字符类：char(2个字节)
 *    3.布尔值：boolean(1个字节)
 */

/**
 * 基本数据类型使用注意事项：
 * 1.声明 long 类型数据，数字后面必须跟一个L或者l，示例：long num = 1000L 
 * 2.声明float 类型数据，小数后面必须跟一个F或者f，示例：float num = 9.0002F
 * 3.直接声明整数，计算机默认是 int 类型，如：int num = 60 + 20
 * 4.直接声明小数，计算机默认是 double 类型，如：double num = 60.2 + 20.3
 * 5.声明char 类型使用单引号，声明字符串使用双引号。如：char c = 'a'; String s = "hello"
 * 6.
 * 7.变量必须先声明再使用
 */

/**
 * 基本数据类型转换：
 * 以下两个链条存储空间从小到大的顺序，占位小的值可以赋值给占位大的类型，占位大的不可以赋值给小的
 *  char --> int --> long --> float --> double
 *  byte --> short --> int --> long --> float --> double
 * 1.自动转换
 *    int num = 'a'; // 97 将字符 a 的ascii值赋值给 num，char(1字节) < int(4字节)，所以可以自动转换
 *    double d = 80; // 80 是 int 类型，将 int 赋值给 double 是ok 的，自动类型转换
 *    
 *    多种数字类型进行计算，先自动转换成类型最大的那种数据类型，再进行计算，如：
 *      int num = 109;
 *      float f = 80.9F;
 *      double d = num + f + 1.9; // 1.9默认是double类型，int、float、double三种类型计算，double类型最大，三个数自动转换为double
 * 
 *    char byte short 只要参与计算就会自动转化类型为int
 *    byte b = 16;
 *    short s = 14;
 *    short i = b + s; // 错误，byte 和 short char参与计算自动转换为int，int --> short
 * 
 *    char byte short 三种类型之间不会相互转换
 * 
 *    boolean 不参与转换
 * 
 * 
 * 2.强制转换
 *    强制转换符(),如：int num = (int)1.9 // 1.9 会存在精度丢失的问题
 *    
 *    byte b = 10;
 *    b  = b + 11; // 错误，11为int类型，int-->byte
 *    b = (byte)(b + 11) // 正确，强制类型转换
 */

/**
 * 字符串
 * 
 * 基本数据类型转为字符串类型
 * 使用加号,如：
 * int num = 10
 * String s = num + "hello"; // 10hello
 * 
 * 字符串转基本数据类型
 * 使用包装类的方法
 * Integer.parseInt('123')
 * Double.parseDouble('1.23')
 * Float.parseFloat('1.3')
 * Short.parseShort('23')
 * Long.parseLong('234')
 * Boolean.parseBoolean('true')
 * Byte.parseByte('22')
 */

/**
 * 加号的使用
 * 1.加号两边都是数字，算数加法 int num = 1 + 1
 * 2.加号有一边是字符串，那就是拼接
 * 3.运算顺序，从左到右，小括号可以提升优先级
 * 4.
 */

/**
 * 编码格式
 * ascii 表 128个字符，实际可以存256个，美国发明用来表示字符，由于英文字符较少
 *  优点：一个字符占用一个字节byte
 *  缺点：字符太有限了
 * 
 * unicode 表，包含英文，中文等等，固定字符集 2的16次方65536
 *  优点：相比ascii，将世界上所有的字符都纳入其中，每个符号都有一个单独的编码
 *  缺点：固定字节大小对于存储空间浪费，英文字母和中文都是两个字节
 * 
 * utf-8：动态分配空间
 *  优点：字符更多，动态，字母一个字节byte，中文是三个字节byte
 *  
 * gbk：中文
 */